This invention relates to updating features describing user actions in online systems, for example, social networking systems, and in particular real-time updates to features based on user actions in online systems.
Online systems often present information useful to users and allow users to interact with the online system. Online systems may use various techniques to determine information that is likely to be of interest to a user before presenting the information to the user. Users are more likely to visit the online system regularly if they are presented with information they like. Online systems often earn revenue from advertisements. Advertisers prefer to advertise in online systems that are regularly visited by their users. Therefore, user loyalty may determine revenues generated by an online system. As a result, the ability of an online system to present interesting information to users typically affects the revenue earned by the online system.
Online systems often use past user actions for making decisions regarding actions taken by the online systems. For example, past user behavior may be used by an online system to suggest information to the user that a user may find interesting. An example of an online system is a social networking system that allows users to establish connections with each other. A social networking system may use past user actions to identify news feed stories that may be of interest to a user or to identify potential friends of a user for recommending to the user. Online systems may use predictor models for determining information of interest to a user, for example, machine learning models. These models predict actions based on features describing users and their actions in the online system.
Online systems can often have a large number of users, for example, tens or hundreds of millions of users, who interact on a regular basis with the online system and generate a large amount of information in the online systems. The information generated is used to determine the values of features used by the models of the online system or various modules that make decisions based on the features. Typically, online systems maintain features based on a set of user actions that were taken in the past. Updating the features can be a computation intensive and complex operation. Therefore, the feature values may not be updated very frequently. As a result, recent changes in the patterns of interactions with the online system may not be reflected in the features until quite late. For example, if the user interface of an online system is changed, the user interactions with the online system may change significantly. Similarly, if there is a change in the technology, the user interactions with the online system may change significantly. For example, if an online system that was previously not accessible via mobile devices becomes accessible via mobile devices, the users may interact with the online system in new ways that may not have been previously possible or may not have been popular. However, if the feature values of the online system do not reflect these recent changes, the decisions made by the online system based on feature values do not reflect the recent changes in the user behavior. As a result, online system may take actions that are not relevant to users any more or the online system may present information that is not interesting to the users.